package com.yeung.swordoffer;

import java.util.HashMap;
import java.util.Map;

/*
数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。
由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。
 */
public class 数字超过一半的数字 {
    public static void main(String[] args) {

    }

    public int MoreThanHalfNum_Solution(int[] array) {
        if (array.length==1) return array[0];
        int mid = array.length / 2;
        Map<Integer, Integer> map = new HashMap<>();
        for (int item : array) {
            if (map.containsKey(item)) map.put(item, map.get(item) + 1);
            else map.put(item, 1);
        }
        final int[] num = {0};
        map.forEach((key, val) -> {
            if (val > 4) num[0] = key;
        });
        return num[0];
    }

}
